package cn.iocoder.yudao.module.system.controller.admin.studentdashboard.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.List;

@Schema(description = "管理后台 - 学生看板数据查询 Request VO")
@Data
public class StudentDashboardReqVO {

    @Schema(description = "学生ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001")
    @NotNull(message = "学生ID不能为空")
    private Long studentId;

    @Schema(description = "考试ID（用于获取指定考试的数据）", example = "1")
    private Long examId;

    @Schema(description = "考试ID列表（用于多次考试对比）", example = "[1, 2, 3]")
    private List<Long> examIds;

    @Schema(description = "是否包含年级排名", example = "true")
    private Boolean includeGradeRank = true;

    @Schema(description = "是否包含班级排名", example = "true")
    private Boolean includeClassRank = true;

    @Schema(description = "是否包含各科排名", example = "true")
    private Boolean includeSubjectRank = true;

    @Schema(description = "是否包含成绩趋势", example = "true")
    private Boolean includeTrend = true;

    @Schema(description = "是否包含分数分布", example = "true")
    private Boolean includeDistribution = true;

    @Schema(description = "趋势分析的考试数量限制", example = "5")
    private Integer trendLimit = 5;

    @Schema(description = "是否包含等效位次和等效分", example = "true")
    private Boolean includeEquivalentScoreRank = true;

    @Schema(description = "是否包含目标分析", example = "true")
    private Boolean includeGoalAnalysis = true;
}
